package com.pragmatic.cryptography;

import lombok.Data;
import org.springframework.util.StringUtils;

/**
 * 传输密文格式
 *
 * @author wangdong
 * @since 2025/4/22 10:00
 */
@Data
public class EncryptMessage {

  /** 请求流水号 唯一请求流水号 */
  private String requestId;

  /** 密钥密文 AES密钥通过RSA加密后所得 */
  private String secretKey;

  /** 业务参数 业务报文通过AES加密后所得 */
  private String data;

  /** 签名数据 */
  private String sign;

  /**
   * 将对象转成String(requestId=001&secretKey=qwqwqe)
   *
   * @param message 对象
   * @return 组装后的字符串
   */
  public static String objectToStr(EncryptMessage message) {
    StringBuilder messageBuilder = new StringBuilder();
    messageBuilder.append("requestId=").append(message.getRequestId());
    if (!StringUtils.isEmpty(message.getSecretKey()))
      messageBuilder.append("&").append("secretKey=").append(message.getSecretKey());
    if (!StringUtils.isEmpty(message.getData()))
      messageBuilder.append("&").append("data=").append(message.getData());
    /*if (!StringUtils.isEmpty(message.getSign()))
      messageBuilder.append("&").append("sign=").append(message.getSign());*/
    // 返回结果
    return messageBuilder.toString();
  }
}
